const state={
	changeClassDialog: false,
	classlist:[],
	oldClass:null
};
const getters={
	
	isShow(state) {  //方法名随意,主要是来承载变化的changeClassDialog的值
       return state.changeClassDialog
   },
   getClassList(){
   	   return state.classlist
   },
   getOldClass(){
   	return state.oldClass
   }
	
};

const mutations = {
	show(state) {   //自定义改变state初始值的方法，这里面的参数除了state之外还可以再传额外的参数(变量或对象);
        state.changeClassDialog = true;
    },
    hide(state) {  //同上
        state.changeClassDialog = false;
    },
    setClassList(state,data){
    	state.classlist=[]
    	state.classlist=data;
    },
    setOldClass(state,data){
		// debugger
		if(!data){
			tool.message({
				showClose: true,
				type: 'warning',
				message: '班级信息为空！',
				duration: 3000
			});
			state.oldClass={};
			return;
		}
		if(!data.coursePackage)data.coursePackage={};
		// data.coursePackage.chargeModeName=tool.getDictNameByValue(data.coursePackage.chargeMode,'charge_mode')||'';
		data.classStatusModeName=tool.getDictNameByValue(data.classStatusMode,'class_status_mode')||'';
		//课程类型
		let unit='课时';
		let unitPrice=Math.ceil(data.coursePackage.totalMoney * 100 / 
			(data.coursePackage.courseHour||1)) / 100;
		if(data.coursePackage.chargeMode==3){
			unit=tool.getDictNameByValue(data.coursePackage.courseTimeMode,
			'course_time_mode');
			unitPrice=data.coursePackage.totalMoney
			// Math.ceil(data.coursePackage.totalMoney * 100 / 
			// 	(data.totalCourseHour||1)) / 100;
		}
		// else{
		// 	unitPrice = Math.ceil(data.coursePackage.totalMoney * 100 / 
		// 		data.coursePackage.courseHour) / 100;
		// }
		//双师课
		if(data.courseType == 4) {
			unit = "节";
		}

		data.courseTypeUnit=unit;
		data.courseUnitPrice=unitPrice||0;
		data.payMode=data.payMode||2;//原班支付方式
		// data.payMode=data.payMode;
    	state.oldClass = data;
    }
};

const actions = {
	hidechangeClassPanel(context) {  //自定义触发mutations里函数的方法，context与store 实例具有相同方法和属性
        context.commit('hide');
    },
    showchangeClassPanel(context) {  //同上注释
    	
        context.commit('show');
    },
    getCourselist(context,paras){
		// debugger
		//先获取可转班的班级名称列表
    	api.getClassnameListChange({
			campusId:paras.campusId,
			studentId:paras.studentId,
			classId:paras.classId
		}).then(function(data){
			if(data.resultCode==2000){
				let courlist=[];
				if(data.list&&data.list.length>0){
					for(let i=0,count=data.list.length;i<count;i++){
						if(data.list[i].courseType==2)continue;//屏蔽全日制退课
						courlist.push(data.list[i]);
					}
				}
				context.commit('setClassList',courlist);
			}
    		// let param = {studentId:paras.studentId,coursePackageId:paras.coursePackageId,studentCourseId:paras.studentCourseId};
			let param = {
				studentId:paras.studentId,
				classId:paras.classId
			};
			// debugger
    		return api.getOldClassInfoChange(param);
    		
    	}).then(function(data){   		
    		if(data.resultCode==2000){
				// debugger
    			context.commit('setOldClass',data.info||{});
    			context.commit('show');
    		}
		});
    }
};

module.exports = {
	  namespaced:true,//用于在全局引用此文件里的方法时标识这一个的文件名
	  state,
	  getters,
	  actions,
	  mutations
}